1. Field of the Invention
The present invention relates to disk drives. More particularly, the present invention relates to optimizing the order of error recovery steps in a disk drive.
2. Description of the Prior Art
Disk drives employ an “on-the-fly” error detection and correction system that employs an error correction code (ECC), such as a Reed-Solomon code, to detect and correct errors in data sectors recorded on the disk. If the number of errors exceed the error correction capability of the ECC, the disk drive executes a “heroic” error recovery procedure wherein a number of retry operations are performed in an attempt to recover the errant data sector by rereading the data sector numerous times. The error recovery procedure adjusts a number of parameters during the retry reads in an attempt to reduce the signal-to-noise ratio (SNR) until the number of errors falls within the error correction capability of the ECC. For example, the error recovery procedure may adjust a gain of an amplifier, a cutoff frequency of a low pass filter, coefficients of an equalizing filter, a bias setting for a magnetoresistive head, a tracking offset, a timing recovery parameter, etc.
Each parameter is typically adjusted independent of the other parameters. That is, the error recovery procedure comprises a number of error recovery steps, wherein each error recovery step adjusts one parameter, such as the gain of an amplifier, while leaving the other parameters unchanged. Within each error recovery step, the parameter may be set to a number of different values during each retry read operation. For example, the gain of an amplifier may be set to a minimum value and slowly incremented for each retry operation until the data sector is recovered. If all of the gain settings are attempted without success, the gain of the amplifier is reset to a nominal value and the next error recovery step of the error recovery procedure is executed.
The execution time for each error recovery step varies based on the number of values that each parameter takes on, and the number of retry reads attempted for each parameter value. In an attempt to minimize the average time to recover errant data sectors, the error recovery steps are typically ordered based on the effectiveness in successfully recovering data sectors. However, ordering the error recovery steps based on effectiveness does not take into account the execution time for each error recovery step. For example, a highly effective error recovery step may have a significantly long execution time whereas a less effective error recovery step having a much shorter execution time may successfully recover an errant data sector under certain conditions, thereby reducing the overall recovery time on average if the less effective error recovery step is executed earlier in the error recovery procedure.
Another drawback with the prior art is that the order of the error recovery steps is fixed for a family of disk drives based on a nominal set of operating conditions and expected deviation due to manufacturing tolerances. However, for disk drives that deviate significantly from the normal manufacturing characteristics or that operate in unusual environments (e.g., mobile applications) the nominal order of error recovery steps may be far from optimal resulting in a significantly longer error recovery time on average.
There is, therefore, a need to optimize the order of the error recovery steps of an error recovery procedure executed by a disk drive to reduce the average time to recover errant data sectors.